Method and apparatus for position determination with extended sps orbit information

ABSTRACT

A method and system for assisting mobile stations to locate a satellite use an efficient messaging format. A server computes a correction between coarse orbit data of a satellite and precise orbit data of the satellite. A coordinate system is chosen such that variation of the correction is substantially smooth over time. The server further approximates the correction with mathematical functions to reduce the number of bits necessary for transmission to a mobile station. The mobile station, upon receiving the coefficients, evaluates the mathematical functions using the coefficients and a time of applicability (e.g., the current time), converts the evaluated result to a standard coordinate system, and applies the conversion result to the coarse orbit data to obtain the precise orbit data.

CROSS REFERENCES

This application is a divisional of U.S. patent application Ser. No.12/366,546, filed Feb. 5, 2009, which is a continuation of U.S. patentapplication Ser. No. 11/833,962, filed Aug. 3, 2007, and hereby claimsthe benefit of the filing dates of U.S. Patent Application No.60/857,972, filed Nov. 10, 2006, titled “Bit Efficient Support OfExtended Orbit For GNSS,” U.S. Patent Application No. 60/886,230, filedJan. 23, 2007, titled “Efficient Range Correction Messages For AccuratePosition Determination With Assisted GPS,” U.S. Patent Application No.60/888,738, filed Feb. 7, 2007, titled “Bit Efficient Support OfExtended Orbit For GNSS,” U.S. Patent Application No. 60/896,493, filedMar. 22, 2007, titled “Method And Apparatus For Position DeterminationWith Extended SPS Orbit Information,” U.S. Patent Application No.60/917,622, filed May 11, 2007, titled “Method And Apparatus ForPosition Determination With Extended SPS Orbit Information,” and U.S.Patent Application No. 60/939,964 filed May 24, 2007, titled “Method AndApparatus For Position Determination With Extended SPS OrbitInformation,” all of which are hereby incorporated by reference in theirentirety and are assigned to the assignee hereof.

BACKGROUND

1. Field

The present invention relates generally to a satellite positioningsystem (SPS), and more particularly, to assisting a mobile station tolocate a satellite using an efficient messaging format containingextended SPS orbit correction information.

2. Background Information

A satellite positioning system (SPS) receiver normally determines itsposition by computing times of arrival of signals transmittedsimultaneously from multiple satellites. These satellites transmit, aspart of their messages, both satellite positioning data and satelliteclock timing data. The satellite positions and clock timing typicallyare represented by almanac or ephemeris data. The ephemeris dataprovides an extremely accurate estimate (˜1 meter error) of satellitepositions and clock bias. However, the process of searching for andacquiring satellite signals, reading the ephemeris data transmitted bythe satellites, and computing the location of the receiver from thisdata is time consuming, often requiring several minutes. In many cases,this lengthy processing time is unacceptable and, furthermore, greatlylimits battery life in miniaturized portable applications.

For example, Global Positioning Systems (GPS) determine position basedon the measurement of the times of arrival at a GPS receiver antenna ofthe GPS signals broadcast from orbiting satellites. As stated, onedisadvantage of such a system is the relatively long time needed toperform signal acquisition under certain conditions. Satellite signalscannot be tracked until they have first been located by searching in atwo-dimensional search “space”, whose dimensions are code-phase delayand observed Doppler frequency shift. The process of an SPS receiversearching for, acquiring, and demodulating satellite signals issometimes referred to as a “standalone” mode of operation, which can becontrasted with an “assisted” mode of operation.

In order to reduce the delay associated with a stand-alone mode ofoperation, information may be provided to aid an SPS or GPS receiver inacquiring a particular signal. Such assistance information permits areceiver to narrow the search space that must be searched in order tolocate a signal, by providing bounds on the code and frequencydimensions. A system that employs a GPS receiver augmented withexternally sourced GPS assistance data is commonly referred to as an“assisted global positioning system” (AGPS).

One example of an AGPS system includes a wireless mobile station (MS)(such as a cellular telephone) having, or in communication with, a GPSreceiver, the MS in communication with one or more base stations (BSs),also referred to as base transmitting stations (BTSs) or node Bs, of awireless communication network, which in turn communicate with one ormore location assistance servers, sometimes referred to as PositionDetermination Entities (PDEs), Serving Mobile Location Centers (SMLCs),or the like, depending upon the communication air interface protocol.Another example of an AGPS system includes a MS or laptop, having, or incommunication with, a GPS receiver, the MS or laptop capable ofcommunication with a communication network, such as but not limited to,the Internet, through which the device ultimately communicates with alocation assistance server.

The location assistance server derives GPS assistance information fromone or more GPS reference receivers. The location assistance server alsohas access to a means of determining the approximate mobile stationposition. The location assistance server maintains a GPS database thatcontains reference time, satellite orbit almanac and ephemerisinformation, ionosphere information, and satellite working condition(“health”) information. The location assistance server also computes theassistance information customized for the approximate mobile stationposition.

Position location for a MS in an AGPS system can be determined at the MS(sometimes referred to as MS-based positioning mode) with assistancefrom a location assistance server. During MS-based positioning mode,when a GPS engine requires updated aiding data such as ephemeris data,almanac data regarding the location of satellites or base stations,timing information for the base stations and/or satellites, or seedposition (such as, but not limited to that determined by advancedforward link trilateration (AFLT)), and so on, the next position fixwill result in the mobile station contacting the communication networkfor data, thereby taxing the network and using power resources of theMS. Position location for a MS in an AGPS system can alternatively bedetermined at the location assistance server and transmitted back to theMS using information acquired by the MS (sometimes referred to asMS-assisted positioning mode). Satellite orbits in a GPS can be modeledas modified elliptical orbits with correction terms to account forvarious perturbations. The relative short-term ephemeris data provides avery accurate representation of the orbit of the satellite. For example,bit 17 in word 10 of GPS subframe 2 is a “fit interval” flag whichindicates the curve fit interval used by the GPS control segment indetermining the ephemeris parameters with “0” indicating a 4-hour fitand “1” indicating a “greater than 4 hours” fit. Furthermore, theextended navigation mode of the Block GPS satellites guarantees thetransmission of correct ephemeris parameters for 14 days to supportshort-term extended operation. During normal operation, the controlsegment provides daily uploads of the navigation (orbital) data to eachsatellite to support a positioning accuracy of 16 meters spherical errorprobable (SEP).

As described, a location assistance server has accurate orbitalinformation available. Each ephemeris and clock correction modeluploaded by the location assistance server usually covers a 4-hour timespan with great accuracy. To cover a longer period of time, such as a24-hour period, the location assistance server could send the devicemultiple 4-hour ephemeris and clock correction models for each of the Nsatellites in the constellation. However, it would require a largeamount of octets to describe the satellite positions and clock errorsfor full constellation of satellites (e.g. 27 satellites). These lengthymessages would contribute to the lengthy processing time and are,therefore, unacceptable to most mobile device applications. This wouldalso tax the communication network.

In addition to ephemeris data, satellites in a SPS also transmit almanacdata that can be used to determine satellite positions and clock bias.The almanac data provides a truncated reduced-precision (coarse) set ofthe ephemeris parameters as well as coarse clock correction parameters.Consequently, raw satellite positions derived from the almanac data tendto be much less accurate (˜1 kilometer) than those derived from thedetailed ephemeris data (˜1 meter). It should be noted that in general,the satellite orbits can be represented either by a coarse set (e.g.,the almanac) or a precise set (e.g., the ephemeris) of orbital andsatellite clock parameters.

A system and method is needed to provide extended orbital data to an SPSreceiver to reduce the frequency of almanac and/or ephemeris downloadsrequired, either from the satellite directly, or from a locationassistance server.

SUMMARY OF THE DESCRIPTION

A method and system for assisting mobile stations to locate satellitesusing an efficient messaging format is described. A server computes acorrection between coarse orbit data of a satellite and precise orbitdata of the satellite. A coordinate system is chosen such that variationof the correction is substantially smooth over time. The server furtherapproximates the correction with mathematical functions to reduce thenumber of bits necessary for transmission to a mobile station. Themobile station, upon receiving the coefficients, evaluates themathematical functions using the coefficients and a time ofapplicability (e.g., the current time), converts the evaluated result toa standard coordinate system, and applies the conversion result to thecoarse orbit data to obtain the precise orbit data.

The method and system described herein provides a unique way of solvingproblems related to long-term satellite orbit data. Advantages of themethod and system include smaller file size and smaller messages sent toa mobile station, as well as better accuracy in satellite positions andtiming. A hybrid mode of operation is also introduced to enhancepredictions of satellite positions and timing.

Other features of the present invention will be apparent from theaccompanying drawings and from the detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and not by way oflimitation in the figures of the accompanying drawings in which likereferences indicate similar elements. It should be noted that referencesto “an” or “one” embodiment in this disclosure are not necessarily tothe same embodiment, and such references mean at least one.

FIG. 1 is a diagram showing an example of a communication systemincluding a server to assist a mobile station to locate a satellite.

FIG. 2 is a diagram showing a coordinate system according to an aspectof the invention.

FIG. 3 is a flowchart showing an example of a method performed by amobile station.

FIG. 4 is a flowchart showing an example of a method performed by aserver.

FIG. 5 is a flowchart showing further details of the method of FIG. 4.

FIG. 6A is a block diagram showing an example of components in alocation assistance server.

FIG. 6B is a block diagram showing an example of components in a mobilestation.

DETAILED DESCRIPTION

A method and system for assisting mobile stations to determine satellitepositions and satellite clock errors is described. The satellitepositions and satellite clock errors are determined using an efficientmessaging format containing extended SPS orbit correction information.The method and system described herein provides a unique way of solvingproblems related to long-term satellite orbit data. In one aspect of theinvention, the method reduces file size and messages sent to a mobilestation. The method also improves accuracy in the determination ofsatellite positions and timing at the mobile station. In another aspectof the invention, a hybrid mode of operation is introduced to enhancepredictions of satellite positions and timing.

The number of bits required for supporting extended orbit and clockcorrections is reduced significantly by using correction data calculatedat a location assistance server and coarse orbit data received in amobile station. The correction data is the difference between thesatellite positions computed from a coarse representation of satelliteorbit (for example, but not limited to, almanac) and those positionscomputed from predicted precise orbital data (e.g. orbital data which isof an extended duration in time—longer than that which can be obtainedfrom the satellite vehicle, such as 6 hours or more). The correctiondata also includes the difference between the clock corrections computedfrom the coarse orbit data and those computed from predicted satelliteclock data. These corrections generally vary in time and are unique toeach satellite. However, with proper choice of a coordinate system, thevariation can be relatively smooth. The corrections are thencharacterized by a mathematical function (for example, but not limitedto, a polynomial) in time, with only the coefficients being provided tothe mobile station by the location assistance server.

As used herein, a mobile station (MS) refers to a device such as acellular or other wireless communication device, personal communicationsystem (PCS) device, personal navigation device, laptop or othersuitable mobile device capable of receiving and processing SPS signals.The term “mobile station” is also intended to include devices whichcommunicate with a personal navigation device (PND), such as byshort-range wireless, infrared, wireline connection, or otherconnection—regardless of whether satellite signal reception, assistancedata reception, and/or position-related processing occurs at the deviceor at the PND. Also, “mobile station” is intended to include alldevices, including wireless communication devices, computers, laptops,etc. which are capable of communication with a server, such as via theInternet, WiFi, or other network, and regardless of whether satellitesignal reception, assistance data reception, and/or position-relatedprocessing occurs at the device, at a server, or at another deviceassociated with the network. Any operable combination of the above arealso considered a “mobile station.”

The term “coarse orbit data” herein refers to a coarse estimate ofsatellite position and clock data transmitted from a satellite, e.g.,almanac. The term “real-time orbit data” refers to a preciserepresentation of satellite positions and timing transmitted from asatellite, e.g., ephemeris. The term “predicted orbit data” or “preciseorbit data” refers to a precise estimate of satellite position andtiming that has a relatively extended period of validity compared to thereal-time precise orbital data. The predicted orbit data is available atthe location assistance server. However, transmitting the predictedorbit data to a mobile station generally uses a significant amount ofbandwidth. Thus, transmitting the correction data, or an approximationthereof, often greatly increases the transmission efficiency.

FIG. 1 is a block diagram of a communication system 100 according to anaspect of the present invention. System 100 includes a locationassistance server 130 communicatively coupled to one or more MSs 120.Location assistance server 130 receives coarse orbit data, as well asprecise orbit data and/or predicted orbital parameter files containingpredicted orbit data. In one scenario, location assistance server 130receives predicted orbit data via a network 162 from a predicted orbitdata provider 110. Network 162 can be a network that supports InternetProtocol (IP) connections (e.g., the Internet). Location assistanceserver 130 may include an interface, e.g., secure file transfer program(SFTP), for securely transferring the predicted orbit data frompredicted orbit data provider 110.

In one aspect, predicted orbit data provider 110 generates predictedorbit data every several hours (e.g., 4 hours) to produce orbital datawhich is valid for an extended duration in time (e.g., 6 hours or more).Location assistance server 130 checks for new data at a shorter interval(e.g., every hour). Predicted orbit data may also include 3-Duncertainty values for predicted satellite coordinates, uncertainty ofpredicted satellite clock corrections, as well as an indication ofpredicted outages. Based on the uncertainty and outage information, auser range error (URE) may be computed by location assistance server 130and provided to MS 120.

Location assistance server 130 receives coarse orbit data from areal-time orbit data provider 150 via a network 164. Real-time orbitdata provider 150 may be a Global Reference Network (GRN) gateway or aWide Area Reference Network (WARN) gateway that receives real-timesatellite information including, but not limited to, packet-based SPSreference data, navigation messages, health page information, almanac,and ephemeris. In one scenario, network 164 is a network that supportsIP connections, and location assistance server 130 may receive thereal-time satellite information from real-time orbit data provider 150in IP multicast messages.

Location assistance server 130 generates correction data 140 from thepredicted orbit data and the coarse orbit data. Correction data 140 maybe transmitted directly to MS 120 or to a storage location accessible bythe MS. For example, correction data 140 may be stored in a storagedevice locally or remotely coupled to location assistance server 130. MS120 may receive correction data 140 from data host 160 via a network 166using a file transfer protocol, e.g., FTP, HTTP, or other suitablenetwork protocols.

For the purpose of simplifying the discussion herein, the term“correction data” 140 refers to satellite orbital corrections that canbe transmitted point-to-point, transferred in files, broadcast, or sentfrom one place to another by any means of data communications. Themessages generated by location assistance server 130 have an efficientmessaging format that allows MS 120 to determine the satellite positionsand clock timing with a small number of bits over an extended timeperiod. The messages provide MS 120 the information for correctingcoarse orbit data so that the corrected satellite position is accurateto within a few meters.

In another aspect, location assistance server 130 may also provideestimated accuracy (User Range Error (URE)), ionospheric correctionmodel, universal coordinated time (UTC) model, and satellitehealth/usability information to MS 120. This is to ensure the integrityof the satellite data, and to allow mobile operation without the need toreceive and decode the data transmitted by the satellites over the air.This also ensures that MS 120 uses the coarse orbit data which isidentical to that used by location assistance server 130.

It should be noted that the system described above is shown forillustration purposes only and other configurations may exist. Forexample, networks 162, 164, and 166 may alternatively be point-to-pointconnections, local area networks, wide area networks, broadcastnetworks, any suitable wired or wireless networks, computers or computernetworks or combinations thereof that support data communication or filetransfers.

One skilled in the art will see that the coarse orbit data whichprovides a coarse estimate of the satellite positions encompasses abroad range of forms. In the following description, a recent copy of theGPS broadcast almanac is suggested for use as the coarse estimate of thesatellite positions and clock timing for ease in understanding theinventive concept. However, all of the following are illustrative ofalternative coarse orbit data: an earlier copy of GPS broadcastephemeris; recent copies of broadcast Galileo or GLONASS almanac orephemeris; a non-broadcast coarse model of satellite positions whichfollows the same form as GPS, Galileo, or GLONASS almanac or ephemeris;any subset or enhancement of the Keplerian parameters used in GPS,Galileo, and GLONASS almanac and ephemeris formats; any non-Keplerianrepresentations of satellite orbits; and other predicted orbit datawhich has degraded over time. It will also be understood thatcorresponding information pertaining to other satellite navigationsystems can also be applied within the scope of the disclosedmethodology. The present invention includes any and all methods ofdescribing a coarse orbit. One skilled in the art will appreciate thatthe methodology applies no matter what form that coarse estimate takes.

In some scenarios, the coarse orbit data may be supplied by locationassistance server 130 to MS 120. In addition to transmitting the coarseestimate of the satellite positions to MS 120, location assistanceserver 130 has the ability to include a reference time in the assistancemessage to the mobile station. In this aspect of the invention, locationassistance server 130 obtains the reference time from a network timeserver, or from GPS data received from individual reference receivers(e.g., Wide Area Reference Network or Global Reference Network). Thisreference time information can be appended to the message that istransmitted to MS 120 which contains the coarse estimate of satellitepositions. Location assistance server 130 may also implement algorithmswhich can improve the timing accuracy of the reference time provided bythe network time server and transmit this more accurate time to MS 120.

It is to be noted that MS 120 can directly obtain the reference time,independent of location assistance server 130, from a packet switcheddata network that may or may not be synchronized to GPS time (e.g., anetwork time server or a CDMA communication network). In this manner, MS120 obtains an estimate of a global time reference, for example, GPStime, Universal Coordinated Time (UTC) time, (WWO) time, etc.

FIG. 2 shows an example of a coordinate system based on which correctiondata 140 is computed. Track 21 represents an actual satellite orbittrack, which can be substantially estimated by precise orbitpredictions. Track 22 represents an orbit track estimated by coarseorbit data, such as, but not limited to, the broadcast almanac. At anyinstant in time, there is a spatial difference between where thebroadcast almanac says the satellite will be located and where theprecise orbit predictions say it will be located. That difference can beencoded in a coordinate system 23, which is a coordinate system havingan origin and axes that move with the body frame of the satellite.Expressed in orthogonal coordinate system 23, the “error signal,” whichis the difference between the precisely predicted satellite position andalmanac-based satellite position, becomes substantially smooth curves.The variation of the error signal is substantially smooth in time suchthat there is no discontinuity or sharp turns in the error signal whenrepresented as a function of time. In the embodiment of FIG. 1, theerror signal constitutes correction data 140. The underlying techniqueof expressing the error signal in the chosen coordinate systemeffectively minimizes the order of the polynomials required to expressthese “error signals” to any given accuracy.

In one aspect, correction data 140 consists of four dimensions ofinformation: three spatial dimensions (represented by the three axes ofthe coordinate system) to describe the satellite position error, and thetime dimension (the 4^(th) dimension), which describes the clockcorrection of the satellite clock.

The three axes of coordinate system 23 are: Ra, which is a unit vectorpointing from the coarse satellite position (e.g., satellite positiondetermined from the broadcast almanac) to a reference location. As thereference location in typical situations is the center of the earth,this axis is interpreted as “radial.” A skilled person in the art willappreciate that the reference location can be any location (e.g.,inside, above, on or near the surface of the earth) that can bedetermined with reasonable accuracy.

Another axis is Xt: “cross track,” which is defined asXt=Ra×Vel/|Ra×Vel|. Vel is the almanac-based satellite velocity vectorand “×” indicates a vector cross product. The Xt vector is, therefore,perpendicular to both the radial vector Ra and the direction of motionof the satellite.

The third axis is At: “along track,” which is defined as At=Xt×Ra. TheAt vector is almost parallel to the satellite's velocity vector (Vel),but not quite. This is because the satellite's velocity vector is notexactly orthogonal to Ra due to orbital eccentricity (e.g., satelliteorbit is elliptical by nature and not a circle). As the radius of thesatellite orbit increases and decreases with time, satellite velocityvector Vel, in general, has a component along the radial direction Ra.

The three axes of coordinate system 23 defined above are a function oftime since they depend on the instantaneous position of the satellitealong its orbit. Among other motions, as the satellite orbits the earth,the radial vector Ra and along track vector At rotate through a full360° when expressed in an Earth-Centered, Earth-Fixed (ECEF) XYZcoordinate system 24. Note that these axes are computed using thealmanac-based estimate of satellite position. This allows the axes ofcoordinate system 23 to be calculated by location assistance server 130before the almanac corrections are calculated. In the example ofcoordinate system 23, the order in which the axes are computed isessential for proper orientation of the coordinate system. Therefore,the radial vector Ra is computed first, cross track vector Xt iscomputed second and the along track vector At is computed last.

The axes orientation defined above are different for each satellite. Onecould write the unit vectors as Ra(PRN,t), At(PRN,t), Xt(PRN,t), and tomake their dependence on satellite pseudorandom number (PRN) and t,which respectively index the satellites and the current time explicitly.However, for simplicity of the notations, these dependencies are leftimplicit in the following discussions.

Other coordinate systems may be employed for coarse orbit datacorrections as well, such as, but not limited to, a radial/crosstrack/velocity coordinate system (different from the (Ra, At, Xt)described above); a 3-D ECEF XYZ coordinates system for differences, orarrange/elevation/azimuth (polar) coordinate system.

One skilled in the art will see that the (Ra, At, Xt) coordinate system(following the conventional left-hand rule) is illustrative and onepreferred approach, but that a broad range of other axis systems isencompassed by the present invention. The salient feature of these axissystems is that they tend to have two spatial dimensions withsignificantly relaxed accuracy requirements compared to the third. Inthe example of (Ra, At, Xt) coordinate system 23, At and Xt typicallyhave a more relaxed accuracy requirement (e.g., 1/7) compared to Ra. Thecoordinate system can be orthogonal or non-orthogonal. A non-orthogonalcoordinate system, for the purpose of coarse orbit data corrections, canbe any axis system where one of the axes always makes a relativelyshallow angle with respect to the Ra axis, even if it has a differentorigin than (Ra, At, Xt) coordinate system 23. This would include, forexample, a coordinate system in which one axis is the Ra, but the othertwo axes are azimuth and elevation of the satellites, as well as anyother choices for the other two axes.

Additionally, any axis system where some axis is parallel to a linedrawn from some point near an estimate of the satellite location, tosome point near the location of the receiver on the earth, falls withinthe scope of the present invention. Although FIG. 2 has illustrated theRa axis pointing to the center of the earth, an axis which pointstowards any point near the receiver on the ground, or any otherdeterminable reference location, falls within the scope of the presentinvention.

Further, the location of the origin of (Ra, At, Xt) coordinate system 23can be modified within the scope of the invention. An origin at thesatellite location is a matter of mathematical convenience. Inparticular, an origin defined to be at the actual or precisely predictedsatellite location (as opposed to at an estimate of the satellitelocation as in (Ra, At, Xt) coordinate system 23) is within the scope ofthe invention.

Over a predetermined period of time (e.g., a 6-hour period), each of thethree spatial dimensions of the correction data can be expressed as afunction of time in the chosen coordinate system, such as (Ra, At, Xt)coordinate system 23. Theoretically, the correction data can beprecisely represented by polynomials of an infinite order. However, inpractice, the correction data can be approximated by polynomials ofrelatively low order, e.g., 6^(th), 7^(th), or other lower order. Thus,a large number of the polynomial terms and associated coefficients aretruncated; only a small fractional portion of the polynomial terms andassociated coefficients are used as an approximate to the correctiondata. In addition to spatial corrections, a low order (e.g., a firstorder or any suitable low order) polynomial may be used to describe theclock correction parameters that represent an approximation of thedifference between the clock timing in the coarse obit data and thepredicted clock bias. Other accurate clock predictions that areavailable at location assistance server 130 may also be used as thepredicted clock bias, such as the clock information in real-time orbitdata if available.

One skilled in the art will see that the present invention comprisesexpanding the correction data in a series of functions, with thepossibility of increasing accuracy in the expansion as more functionsare used. It is not necessary that the series of functions be increasingpowers of x so that the correction data is represented as a polynomial.One skilled in the art will see that the data corrections could also beexpanded across other series of functions, including harmonics, Hermitepolynomials, Legendre polynomials, cosine and sine functions (Fourierexpansion), and the coefficients of Keplerian orbital functions. Thislist is illustrative, not exhaustive. Expanding the correction data inany set of functions is within the scope of the invention.

The four spatial and temporal sets of polynomial coefficients are sentto MS 120, along with information to associate these coefficients with aparticular satellite, a particular time interval, and a particular copyof coarse orbit data. MS 120 receives a new copy of coarse orbit data ata predetermined interval (e.g., about once per week or other suitabletime intervals). Location assistance server 130 calculates thecorrection data using the same version of the coarse orbit data as theversion to be used by MS 120. Thus, MS 120 can either use coarse orbitdata that it has acquired or that which is transmitted by locationassistance server 130, so long as the correction data is applied to thecorresponding coarse orbit data that location assistance server 130 usedin determining the corrections.

FIG. 3 shows an example of the operations performed by MS 120. Note thatprocesses as shown in FIG. 3 may be performed by processing logic, whichmay include software, hardware, or a combination of both. Once MS 120has the polynomial coefficients and time of applicability, the mobilecan reconstruct accurate predictions of satellite position and clockbias. For any particular time during the period of applicability of thecoefficients, MS 120 can find the satellite position and clock biaswithin a pre-determined accuracy range.

At block 31, MS 120 receives coarse orbit data (e.g. almanac data) fromthe satellites in view or from the location assistance server 130. Itwill often be preferable and more efficient for MS 120 to receive thecoarse orbit data from location assistance server 130 as it can takemany minutes to download such data from satellites. Location assistanceserver 130 may provide the coarse orbit data in the message/file to MS120 together with the correction data. It is understood that the“correction data” referred to at MS 120 may be an approximation to thecorrection computed at location assistance server 130. At block 32, MS120 generates satellite positions in the ECEF coordinates using its copyof the coarse orbit data. The satellite positions computed from thecoarse orbit data and represented in a standard coordinate system, suchas the ECEF coordinates, are referred to as Pos_(Alm) (here, thesubscript “alm,” which stands for “almanac,” is used as an example ofthe coarse orbit data). At block 33, MS 120 receives coefficients of oneor more series of mathematical functions from location assistance server130. At block 34, MS 120 reconstructs the spatial correction data to thecoarse orbit data for a time of applicability (e.g., the current time)by evaluating the mathematical functions for the current time using thecoefficients it has received. At block 35, MS 120 converts the spatialcorrections found in block 34 from a coordinate system (e.g., (Ra, At,Xt) coordinate system 23 of FIG. 2) to the ECEF coordinates. Theconverted corrections are referred to as Pos_(Cor). Subsequently, atblock 36, MS 120 computes satellite locations (Pos_(Sat)) in the ECEFcoordinates by calculating Pos_(Sat)=Pos_(Alm)+Pos_(Cor). At block 37,MS 120 performs the same operations in blocks 34 and 36 to determine anaccurate clock bias. It is understood that the mobile operations mayoccur in a different order from the descriptions above, and additionaloperations may also be performed. For example, at block 36, instead ofcalculating Pos_(Sat)=Pos_(Alm)+Pos_(Cor), MS 120 may choose to applyPos_(Cor) in the range space R_(Sat)=R_(Alm)+R_(Cor), where R representsthe computed distance from MS 120 to the satellite.

FIG. 4 shows an example of the operations performed by locationassistance server 130. Note that processes as shown in FIG. 4 may beperformed by processing logic, which may include software, hardware, ora combination of both. Location assistance server 130 calculates thepolynomial coefficients that describe the correction data in thefollowing operations.

At block 410, location assistance server 130 obtains precise orbit datafor satellite orbits and clock bias, e.g., from satellite broadcastsignals or from an external data provider. The precise orbital data isvalid for a pre-determined validity period. At block 420, locationassistance server 130 obtains the coarse orbit data in a formatsupported by the particular satellite navigation system. At block 430,location assistance server 130 determines whether to divide the validityperiod into multiple N-hour fit intervals, or use the entire validityperiod as one fit interval. A fit interval herein refers to a timeperiod for which polynomial coefficients are computed to describe thecorrection data of that time period. An example of a fit interval is 4-6hours, although other time periods may also be used. If locationassistance server 130 has the precise orbit data with an extendedvalidity period, the location assistance server may divide the preciseorbit data into a plurality of fit intervals to improve the accuracy ofthe fits. At block 440, for each N-hour fit interval, locationassistance server 130 performs the operations described below in FIG. 5to compute correction data and the approximation thereof. At block 450,location assistance server 130 transmits the approximation of thecorrection data to MS 120.

Referring to FIG. 5, at block 510, location assistance server 130 usesthe precise orbit data to form a time series of satellite positions inthe ECEF coordinates. These satellite positions are defined asPos_(Sat). At block 512, location assistance server 130 uses the coarseorbit data to compute the satellite positions in the ECEF coordinates.These satellite positions are defined as Pos_(Alm). At block 514,location assistance server 130 calculates the correction data vectors(Pos_(Cor)) in the ECEF coordinates by computingPos_(Cor)=Pos_(Sat)−Pos_(Alm). At block 516, location assistance server130 uses the satellite position Pos_(Sat) to calculate Ra, Xt, and Atunit vectors in the orthogonal coordinate system 23, or other coordinatesystems as described above. At block 518, the time series of thecomponent of correction along the radial axis Ra is obtained bycalculating the dot product: Ra_(Cor)=Pos_(Cor)·Ra. At block 520, thetime series of the cross track and along track corrections Xt_(Cor) andAt_(Cor) are similarly calculated. At block 522, the correction data forthe clock bias is calculated as CB_(Cor)=CB_(Sat)−CB_(Alm), whereCB_(Sat) and CB_(Alm), are the clock corrections using the precise clockmodel and the coarse estimate of the clock model, respectively.

At block 524, location assistance server 130 may scale and/or normalizethe time axis of the polynomial interpolation to enhance the performanceof the interpolation. Location assistance server 130 and MS 120 areexpected to use the same scaling and/or normalization factors in orderto properly reconstruct the correction data in the mobile software.

At block 526, location assistance server 130 finds polynomialcoefficients for interpolating the radial, along track, and cross trackcorrections Ra_(Cor), At_(Cor), and Xt_(Cor). The polynomialcoefficients (Ra₀, Ra₁, . . . Ra_(j)) for Ra_(Cor) are chosen such thatRa₀ f₀(d)+Ra₁f₁(d)+ . . . +Ra_(j)f_(j)(d) is a good approximation toRa_(Cor), where d is the correction data point, and f₀, f₁, . . . f_(j)are the interpolating functions. The coefficients may be chosen so thatthe polynomial approximates Ra_(Cor) with a minimum mean square error.Location assistance server 130 similarly finds polynomial coefficientsfor Xt_(Cor), and At_(Cor) such that these coefficients Xt₀, Xt₁, Xt₂ .. . Xt_(k), At₀, At₁, . . . , At_(m) provide good approximations toXt_(Cor), and At_(Cor). Finally, at block 530, location assistanceserver 130 finds the coefficients of the interpolating functions for theclock bias correction CB_(Cor). It is understood that the number ofcoefficient terms for representing the corrections in each of thespatial and time dimensions may be not the same. More coefficients for adimension generally correspond to a higher accuracy in therepresentation of the correction data in that dimension.

The operations of blocks 510-530 are repeated if there are multipleN-hour fit intervals for the validity period. The order of operationsmay differ from the descriptions above and additional operations may beincluded.

The correction data generated by location assistance server 130 of FIG.1 may be global or local. When the location of MS 120 is completelyunknown or the location cannot be estimated within an accuracy of a fewhundred kilometers, location assistance server 130 generates a globalmessage for the MS. Global messages can be sent to mobile stationsanywhere on Earth for producing accurate satellite positions. Localmessages are briefer, but they are only accurate within a few hundredkilometers radius of some intended reference point on the surface of theEarth. Thus, the shorter local messages may be sent when the mobileposition is known ahead of time to within a few hundred kilometers. Whenthe location of the mobile station is unknown, global messages may besent to the mobile station. The difference between a global message anda local message is described below.

A global message uses the center of the Earth as the reference locationof the (Ra, At, Xt) coordinate system. As almanac errors have fourindependent dimensions (three spatial dimensions and clock bias), theglobal message includes four polynomials, three to fit orthogonalspatial components of the satellite position error, and the fourthpolynomial to describe a more accurate clock bias.

A local message uses a point on the Earth's surface as the referencelocation of the (Ra, At, Xt) coordinate system. Typically, locationassistance server 130 uses an estimate of the mobile station's currentlocation as the reference location (e.g., the location of a cellulartower with which the mobile is communicating). The local messagecontains a single polynomial fit to the correction. The one-dimensionalcorrection includes both the correction to the spatial range to thesatellite (also referred to as the pseudorange), as well as thecorrection for the clock bias. As only one polynomial is sent, the localmessage is significantly shorter than the global message.

The pseudorange correction is calculated for a reference location whichideally is as close to where the mobile station is actually located aspossible. As long as the mobile is within about 100 km of the estimatedreference location, the positioning result is quite accurate. Accuracydegrades slowly as the mobile's true position diverges further than 100km from the estimated reference location. The mobile can determine itspositioning accuracy degradation by first calculating its location andthen comparing that to the reference location of the correction data.

In another aspect, MS 120 of FIG. 1 may use a combination of orbit datato determine satellite positions and clocks. In some scenarios, MS 120receives real-time orbit data (e.g. ephemeris) in addition to thecorrection data. For a single satellite, MS 120 may use real-time orbitdata for one time period, corrected orbit data (which comprises thecorrection data applied to the coarse orbit data) for another timeperiod, and a combination (e.g., a weighted average) of both for yetanother time period. To determine its location from multiple satellites,MS 120 may use real-time orbit data for one satellite, corrected orbitdata for another satellite, and a combination of both for yet anothersatellite. A skilled person will appreciate that the variouscombinations described above are illustrative only. Any combination, intime or of different satellites, of real-time orbit data and correctedorbit data can be used by MS 120.

In one aspect, MS 120 may use real-time orbit data decoded fromsatellites whenever the real-time orbit data is available. Real-timeorbit data is generally more accurate than the earlier predicted orbitdata, which may gradually degrades over a period of time. Thus, thecorrected orbit data, which approximates the predicted orbit data, alsogradually degrade over time. Also, real-time orbit data may contain newinformation about the satellites not known at the time of predictions(e.g. satellite health and integrity information). However, real-timeorbit data is sometimes not available to MS 120 due to lack of line ofsight, shadowing, or other reception problems that prevents MS 120 fromreceiving satellite broadcasts. When the real-time orbit data is notavailable, MS 120 may switch to the correction data, as described inFIGS. 2-5 above, for locating the satellites. Thus, MS 120 may utilizethe corrected orbit data for a time period and the real-time orbit datafor another time period, depending on the availability of the real-timeorbit data. To determine its own position at any time instant, MS 120may utilize the corrected orbit data of one or more satellites and thereal-time orbit data of one or more other satellites.

The preceding paragraph described a case when the corrected orbit datamay be replaced with available real-time orbit data for the duration ofvalidity of the real-time orbit data. For example, after the ephemerisis no longer valid (+/−2 hours from Time of Ephemeris, i.e. TOE), MS 120may switch back to the corrected orbit data. Alternatively, thereal-time orbit data of an earlier time period can be used to improvethe accuracy of the corrected orbit data. For example, MS 120 may usereal-time orbit data to determine the amount of adjustment applied to afuture time period of the corrected orbit data, which can be used whenthe real-time orbit data is not available (or invalid). This isespecially beneficial for satellite clocks, because clock timing isgenerally not as predictable as the satellite trajectory. In a simplecase, the corrected satellite vehicle clocks can be evaluated againstthe real-time broadcast satellite clock parameters (e.g. from subframe 1of GPS navigation) to determine the amount of adjustment for thecorrected clocks. The adjustment (for example, including differentialoffset and slope) can be applied to corrected clock information for usewhen the real-time clock is unavailable. In an enhanced case, theadjustment can be made to the entire corrected orbit data, includingsatellite positions in three spatial dimensions and satellite clocks.

Furthermore, real-time orbit data and predicted orbit data can beweighed according to their accuracy estimates. MS 120 may appropriatelyweigh the participating satellite measurements in the solution for itsposition and account for the degraded accuracy of predicted data. Theaccuracy estimates for the real-time orbit data and the predicted orbitdata are referred to as “error estimate of precise or short termpredicted data” and “error estimate of long term predicted data,”respectively. For example, almanac contains an uncertainty estimate inthe form of URE (computed or provided by location assistance server 13),and real-time ephemeris data contains an uncertainty estimate in theform of URA (User Accuracy Range, as provided, for example, by GPScontrol segment). URA is usually a couple of meters, and the URE may betens of meters after a couple of days. For example, both error estimatescan be used as weights in a weighted least squares (WLS) model. Theweights may be computed as:

W _((short term predicted orbit))=1/URA², and W_((long term predicted orbit))=1/URE².

Specifically, satellite measurements with smaller satellite positionerrors (represented by URA in the above example) are weighted higherthan satellite measurements with larger predicted satellite positionerrors (represented by URE in the above example). Satellite measurementswith respect to position, velocity, time solution, or any combination ofposition/velocity/time solution can be weighted. The weightedposition/velocity/time solution can be computed from satellitemeasurements by a Weighted Least Squares model (WLS) or a Kalman filter,or some other linear, linearized or non-linear estimation method.

At MS 120, during position/velocity/time computations, to compute theoverall measurement errors, the error estimates of satellite positioningerrors (either real time ephemeris (URA) or predicted orbit errors(URE)) are combined with measured pseudorange errors (due to signalstrength, atmosphere, quantization, RF to digital conversion, etc.). Inother words, at MS 120, the overall pseudorange error:

Variance_total_meas_error=variance_satellite_positioning_error+variance_meas_error.

Furthermore, when MS 120 uses a mix of real-time and predicted orbitinformation from multiple satellites to determine its own location, anextra satellite measurement can be used to solve the predicted satelliteclock error. This extra satellite measurement can be the real-time orbitdata of a satellite and can be used to estimate the predicted clockerror of the same satellite. Alternatively, this extra satellitemeasurement can be the real-time orbit data of a first satellite and canbe used to estimate the predicted clock error of a second satellite. Thepredicted clock error can be removed from the corrected clock to improvethe accuracy of the corrected clock computed at the mobile. This way thereal-time orbit data and satellite clock correction data can be used toeffect a real-time adjustment of the predicted satellite clockinformation.

Since the predicted satellite clock degrades faster than the predictedsatellite positions, the extra satellite measurement can be usedtogether with the predicted satellite positions to compute the predictedsatellite clock errors and make adjustments to the predicted clock forfuture use. Similarly, if current real-time orbit data is available forat least one extra satellite in view, then this real-time data can beused together with this satellite's pseudorange and range-ratemeasurements to compute the predicted satellite clock error of anotherin-view satellite. For a 2-dimensional position estimate (some altitudeknowledge is available), at least four in-view satellites would beneeded to estimate the predicted satellite clock error for onesatellite. For a 3-dimensional position estimate, at least five in-viewsatellites would be needed to estimate the predicted satellite clockerror for one satellite. Every extra satellite can be used to estimateyet another predicted satellite clock error. In a 3-dimensional case(with 4 unknowns), for example, if measurements from 7 satellites areavailable, predicted satellite clock errors can be estimated for threesatellites.

FIG. 6A shows an example of a block diagram of location assistanceserver 130 of FIG. 1. Location assistance server 130 includes a memory604 and a processor 605. Location assistance server 130 also includessecure interface 61 for securely receiving the predicted orbit data froman external data provider, a receiver interface 62 for receivingbroadcast data (e.g., almanac) as well as information transmitted over anetwork (e.g., predicted orbit data), and a transmitter interface 65 fortransmitting the coefficients to MS 120 for determination of thepredicted satellite orbit data. Transmitter interface 65 may transmitthe coefficients via wired or wireless networks, broadcast medium, orany suitable data transmission means.

In one scenario, location assistance server 130 may also include acorrection unit 63 for computing the differences (“correction”) betweencoarse orbit data and predicted orbit data. Location assistance server130 may also include an approximation unit 64 for computing anapproximation of the correction using a coordinate system that is chosensuch that variation of the correction is substantially smooth over time(e.g., (Ra, At, Xt) coordinate system 23 of FIG. 2). In one scenario,the approximation is computed by interpolating the correction datapoints using one or more low-order mathematical functions. An encodingunit 610 encodes the approximation for transmission to MS 120.

FIG. 6B provides an example of a block diagram of components of MS 120.MS 120 includes a memory 608 and a processor 609. MS 120 also includes areceiver interface 66 for receiving the coefficient sequences fromlocation assistance server 130. Receiver interface 66 also receivescoarse orbit data and/or real-time orbit data, e.g., almanac, ephemeris,and/or other satellite position and timing information, from satellitebroadcasts, from location assistance server 130, or from other datasources. Receiver interface 66 may receive the coefficients via wired orwireless networks, broadcast medium, or any suitable data transmissionmeans. MS 120 includes a decoding unit 620 to decode the coefficientsequences sent from location assistance server 130. In one scenario, MS120 may also include an evaluating unit 602, a conversion unit 68 and areconstruction unit 67. Evaluating unit 602 evaluates the mathematicalfunctions using the coefficients and a time of applicability (e.g., thecurrent time). Conversion unit 68 converts the evaluated result from acoordinate system used by location assistance server 130 (e.g., (Ra, At,Xt) coordinate system 23 of FIG. 2) to the ECEF coordinate system.Reconstruction unit 67 then reconstructs the predicted orbit data byapplying the conversion result to the coarse orbit data.

The methodologies described herein may be implemented by various meansdepending upon the application. For example, the above components oflocation assistance server 130 and MS 120 may be implemented inhardware, firmware, software, or a combination thereof. For a hardwareimplementation, the processing units may be implemented within one ormore application specific integrated circuits (ASICs), digital signalprocessors (DSPs), digital signal processing devices (DSPDs),programmable logic devices (PLDs), field programmable gate arrays(FPGAs), processors, controllers, micro-controllers, microprocessors,electronic devices, other electronic units designed to perform thefunctions described herein, or a combination thereof.

For a firmware and/or software implementation, the methodologies may beimplemented with modules (e.g., procedures, functions, and so on) thatperform the functions described herein. Any machine-readable mediumtangibly embodying instructions may be used in implementing themethodologies described herein. For example, referring back to FIGS. 6Aand 6B, software codes may be stored in a memory (e.g., memory 604 oflocation assistance server 130 and memory 608 of MS 120) and executed bya processor (e.g., processor 605 of the location assistance server andprocessor 609 of MS 120). Memory may be implemented within the processoror external to the processor. As used herein the term “memory” refers toany type of long-term, short-term, volatile, nonvolatile, or othermemory and is not to be limited to any particular type of memory ornumber of memories, or type of media upon which memory is stored.

The method and apparatus described herein may be used with varioussatellite positioning systems (SPS) or global navigation satellitesystem (GNSS), such as but not limited, to the United States GlobalPositioning System (GPS), the Russian Glonass system, the EuropeanGalileo system, any system that uses satellites from a combination ofsatellite systems, or any satellite system developed in the future.Furthermore, the disclosed method and apparatus may be used withpositioning determination systems that utilize pseudolites or acombination of satellites and pseudolites. Pseudolites are ground-basedtransmitters that broadcast a PN code or other ranging code (similar toa GPS or CDMA cellular signal) modulated on an L-band (or otherfrequency) carrier signal, which may be synchronized with GPS time. Eachsuch transmitter may be assigned a unique PN code so as to permitidentification by a remote receiver. Pseudolites are useful insituations where GPS signals from an orbiting satellite might beunavailable, such as in tunnels, mines, buildings, urban canyons orother enclosed areas. Another implementation of pseudolites is known asradio-beacons. The term “satellite”, as used herein, is intended toinclude pseudolites, equivalents of pseudolites, and possibly others.The term “SPS signals,” as used herein, is intended to include SPS-likesignals from pseudolites or equivalents of pseudolites.

Position determination techniques described herein may be used forvarious wireless communication networks, such as a wireless wide areanetwork (WWAN), a wireless local area network (WLAN), a wirelesspersonal area network (WPAN), and so on. The term “network” and “system”are often used interchangeably. A WWAN may be a Code Division MultipleAccess (CDMA) network, a Time Division Multiple Access (TDMA) network, aFrequency Division Multiple Access (FDMA) network, an OrthogonalFrequency Division Multiple Access (OFDMA) network, a Single-CarrierFrequency Division Multiple Access (SC-FDMA) network, and so on. A CDMAnetwork may implement one or more radio access technologies (RATs) suchas cdma2000, Wideband-CDMA (W-CDMA), and so on. Cdma2000 includes IS-95,IS-2000, and IS-856 standards. A TDMA network may implement GlobalSystem for Mobile Communications (GSM), Digital Advanced Mobile PhoneSystem (D-AMPS), or some other RAT. GSM and W-CDMA are described indocuments from a consortium named “3rd Generation Partnership Project”(3GPP). CDMA2000 is described in documents from a consortium named “3rdGeneration Partnership Project 2” (3GPP2). 3GPP and 3GPP2 documents arepublicly available. A WLAN may be an IEEE 802.11x network, and a WPANmay be a Bluetooth network, an IEEE 802.15x, or some other type ofnetwork. The techniques may also be used for any combination of WWAN,WLAN and/or WPAN.

Although the present invention has been described with reference tospecific exemplary features, it will be evident that variousmodifications and changes may be made to these features withoutdeparting from the broader spirit and scope of the invention as setforth in the claims. Accordingly, the specification and drawings are tobe regarded in an illustrative rather than restrictive sense.

What is claimed is:
 1. A method of a mobile station, comprising:receiving real-time orbit data from a plurality of satellites for adetermination of spatial and time information of the mobile station; andusing the real-time orbit data of the plurality of satellites to correctan error of a clock bias in predicted orbit data of one or moreadditional satellites, wherein the number of satellites in the pluralityof satellites is equal to or greater than the number of unknowns in thespatial and time information of the mobile station.
 2. The method ofclaim 1, further comprising: using the real-time orbit data of a firstsatellite in the plurality of satellites to correct the error of theclock bias in the predicted orbit data of the first satellite.
 3. Themethod of claim 1, further comprising: correcting the error of the clockbias in predicted orbit data using an estimation method.
 4. The methodof claim 1, wherein the estimation method includes a linear, linearized,or non-linear estimation method.
 5. The method of claim 1, wherein theestimation method includes a Kalman filter or weighted least squares. 6.A mobile station, comprising: a receiver configured to receive real-timeorbit data from a plurality of satellites for a determination of spatialand time information of the mobile station; and a processor configuredto use the real-time orbit data of the plurality of satellites tocorrect an error of a clock bias in predicted orbit data of one or moreadditional satellites, wherein the number of satellites in the pluralityof satellites is equal to or greater than the number of unknowns in thespatial and time information of the mobile station.
 7. The mobilestation of claim 6, wherein the processor is further configured to usethe real-time orbit data of a first satellite in the plurality ofsatellites to correct the error of the clock bias in the predicted orbitdata of the first satellite.
 8. The mobile station of claim 6, whereinthe processor is further configured to correct the error of the clockbias in predicted orbit data using an estimation method.
 9. The mobilestation of claim 6, wherein the estimation method includes a linear,linearized, or non-linear estimation method.
 10. The mobile station ofclaim 6, wherein the estimation method includes a Kalman filter orweighted least squares.
 11. A mobile station, comprising: means forreceiving real-time orbit data from a plurality of satellites for adetermination of spatial and time information of the mobile station; andmeans for using the real-time orbit data of the plurality of satellitesto correct an error of a clock bias in predicted orbit data of one ormore additional satellites, wherein the number of satellites in theplurality of satellites is equal to or greater than the number ofunknowns in the spatial and time information of the mobile station. 12.The mobile station of claim 11, further comprising: means for using thereal-time orbit data of a first satellite in the plurality of satellitesto correct the error of the clock bias in the predicted orbit data ofthe first satellite.
 13. The mobile station of claim 11, furthercomprising: means for correcting the error of the clock bias inpredicted orbit data using an estimation method.
 14. The mobile stationof claim 11, wherein the estimation method includes a linear,linearized, or non-linear estimation method.
 15. The mobile station ofclaim 11, wherein the estimation method includes a Kalman filter orweighted least squares.
 16. A computer program product configured toenable a processor to assist a mobile station, the computer programproduct comprising instructions to cause the processor to: receivereal-time orbit data from a plurality of satellites for a determinationof spatial and time information of the mobile station; and use thereal-time orbit data of the plurality of satellites to correct an errorof a clock bias in predicted orbit data of one or more additionalsatellites, wherein the number of satellites in the plurality ofsatellites is equal to or greater than the number of unknowns in thespatial and time information of the mobile station.
 17. The computerprogram product of claim 16, wherein the instructions further cause theprocessor to use the real-time orbit data of a first satellite in theplurality of satellites to correct the error of the clock bias in thepredicted orbit data of the first satellite.
 18. The computer programproduct of claim 16, wherein the instructions further cause theprocessor to correct the error of the clock bias in predicted orbit datausing an estimation method.
 19. The computer program product of claim16, wherein the estimation method includes a linear, linearized, ornon-linear estimation method.
 20. The computer program product of claim16, wherein the estimation method includes a Kalman filter or weightedleast squares.